import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

#.csv数据文件目录
directory = "src/build/"

# 读取数据并绘图
plt.figure(figsize=(10, 8))

# 读取 PPForm 插值数据
data1 = pd.read_csv(f'{directory}data_test1.csv', header=None)  # 指定没有列标题
x1, y1 = data1[0], data1[1]  # 提取 x 和 y 值

# 读取 BSpline 插值数据
data2 = pd.read_csv(f'{directory}data_test2.csv', header=None)  # 指定没有列标题
x2, y2 = data2[0], data2[1]  # 提取 x 和 y 值

# 假设两者插值点相同，可以直接计算差值（若 x1 和 x2 不完全相同，需要插值或对齐）
if not np.array_equal(x1, x2):
    raise ValueError("插值点不匹配，请确保两组数据具有相同的 x 值。")

# 计算差值：两条曲线之间的差异
difference = np.abs(y1 - y2)

# 绘制差值图
plt.plot(x1, difference, label='Difference (PPForm - BSpline)', color='purple', linestyle='-', linewidth=2)

# 添加图例和标签
plt.legend(loc='best')
plt.title('Difference Between PPForm and BSpline Interpolation')
plt.xlabel('x')
plt.ylabel('Difference (|PPForm - BSpline|)')
plt.grid(True)
plt.savefig('figure/test1.png') 
plt.close()